{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "航空公司客户价值分析\n",
    "    目标：企业针对不同价值的客户制定个性化的服务，将有限的资源集中于高价值客户。\n",
    "    1、借助航空公司的数据进行客户分类\n",
    "    2、比较不同类客户的价值并制定销策略\n",
    "    \n",
    "识别客户价值的最广泛的模型是通过RFM模型来识别出高价值的客户：\n",
    "    Recency： 最近消费时间间隔\n",
    "    Frequency： 消费频率\n",
    "    Monetary： 消费金额\n",
    "问题：同样的消费金额的不同旅客对航空公司的价值不同，例如买长航线、低等仓的旅客和买短航线、高等仓的旅客消费金额相同\n",
    "但是价值确实不同的。显然后者更有价值。因此这个指标可能不合适，故选择客户在一定时间内的飞行里程M和乘坐舱位所对应的折扣洗漱C。\n",
    "\n",
    "航空公司客户价值分析模型：\n",
    "    L：会员入会时间距观测窗口结束的时间\n",
    "    R：客户最近一次乘坐公司分级距观测窗口结束的时间（月数）\n",
    "    F：客户在观测窗口内乘坐公司飞机的次数\n",
    "    M：客户在观测窗口内累计的飞行里程\n",
    "    C：客户在观测窗口内乘坐舱位所对应的折扣系数的平均值\n",
    "模型概述：\n",
    "    通过使用k-means聚类算法没使用LRFMC模型进行测试\n",
    "    对模型进行分析，分析客户的价值\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "import pandas as pd"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/home/xiaoran/anaconda3/lib/python3.5/site-packages/numpy/lib/function_base.py:3834: RuntimeWarning: Invalid value encountered in percentile\n",
      "  RuntimeWarning)\n"
     ]
    }
   ],
   "source": [
    "datafile = 'data/air_data.csv'\n",
    "resultfile = 'data/tmp.xls' \n",
    "data = pd.read_csv(datafile, encoding='utf-8')\n",
    "\n",
    "explore = data.describe().T \n",
    "explore['null'] = len(data) - explore['count'] #计算空值\n",
    "\n",
    "\n",
    "explore = explore[['null', 'max', 'min']]  #得到每一列的空值，最大值，最小值\n",
    "\n",
    "\n",
    "explore.to_excel(resultfile) # 是结果写入文件\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "根据上面的数据统计，丢弃所有不符合的数据，\n",
    "    1、票价为空的\n",
    "    2、票价为0，但是折扣不是0，而且飞行里程大于0，\n",
    "    这样的数据是错误数据，直接删除。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {
    "collapsed": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "62297\n",
      "Index(['MEMBER_NO', 'FFP_DATE', 'FIRST_FLIGHT_DATE', 'GENDER', 'FFP_TIER',\n",
      "       'WORK_CITY', 'WORK_PROVINCE', 'WORK_COUNTRY', 'AGE', 'LOAD_TIME',\n",
      "       'FLIGHT_COUNT', 'BP_SUM', 'EP_SUM_YR_1', 'EP_SUM_YR_2', 'SUM_YR_1',\n",
      "       'SUM_YR_2', 'SEG_KM_SUM', 'WEIGHTED_SEG_KM', 'LAST_FLIGHT_DATE',\n",
      "       'AVG_FLIGHT_COUNT', 'AVG_BP_SUM', 'BEGIN_TO_FIRST', 'LAST_TO_END',\n",
      "       'AVG_INTERVAL', 'MAX_INTERVAL', 'ADD_POINTS_SUM_YR_1',\n",
      "       'ADD_POINTS_SUM_YR_2', 'EXCHANGE_COUNT', 'avg_discount',\n",
      "       'P1Y_Flight_Count', 'L1Y_Flight_Count', 'P1Y_BP_SUM', 'L1Y_BP_SUM',\n",
      "       'EP_SUM', 'ADD_Point_SUM', 'Eli_Add_Point_Sum', 'L1Y_ELi_Add_Points',\n",
      "       'Points_Sum', 'L1Y_Points_Sum', 'Ration_L1Y_Flight_Count',\n",
      "       'Ration_P1Y_Flight_Count', 'Ration_P1Y_BPS', 'Ration_L1Y_BPS',\n",
      "       'Point_NotFlight'],\n",
      "      dtype='object')\n"
     ]
    }
   ],
   "source": [
    "data = pd.read_csv(datafile, encoding='utf-8')\n",
    "\n",
    "cleanedfile = 'data/cleanfile.csv' #存清理后的数据\n",
    "\n",
    "# 去掉票价是空的元素\n",
    "data = data[data['SUM_YR_1'].notnull()]\n",
    "data = data[data['SUM_YR_2'].notnull()]\n",
    "\n",
    "\n",
    "# 去掉票价为0，但是折扣不是0，而且飞行里程大于0\n",
    "data = data.drop(data['SUM_YR_1'] ==0 & (data['SEG_KM_SUM'] != 0) | (data['avg_discount'] > 0))\n",
    "\n",
    "print(len(data))\n",
    "\n",
    "# print(data.columns)\n",
    "\n",
    "# 属性规约：去掉不相管的属性，只留下与LRFMC模型相关的属性\n",
    "# FFP_DATE 入会时间\n",
    "# LOAD_TIME 观测窗口结束时间\n",
    "# FLIGHT_COUNT 飞行频率\n",
    "# avg_discount 平均折扣\n",
    "# SEG_KM_SUM 观测窗口总飞行公里数\n",
    "# LAST_TO_END 最后一次乘机时间至观察窗口末端时长\n",
    "\n",
    "data = data[['FFP_DATE','LOAD_TIME', 'FLIGHT_COUNT', 'avg_discount', 'SEG_KM_SUM','LAST_TO_END']]\n",
    "\n",
    "\n",
    "data.to_csv(cleanedfile) #写入文件"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "数据变化的LRFMC数据：\n",
    "    L = LOAD_TIME - FFP_DATE （观测窗口时间 - 入会时间）\n",
    "    R = LOAD_TIME - LAST_TO_END （观测窗口时间 - 最后一次乘机时间）\n",
    "    F = FLIGHT_COUNT \n",
    "    M = SEG_KM_SUM\n",
    "    C = avg_discount\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 88,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "from datetime import datetime\n",
    "import time\n",
    "\n",
    "def normal_time(date):\n",
    "    '''\n",
    "    格式化数据\n",
    "    '''\n",
    "    return datetime.strptime(date,\"%Y/%m/%d\")\n",
    "\n",
    "def interval_time(dd):\n",
    "    '''\n",
    "    计算时间间隔，以月为单位\n",
    "    '''\n",
    "    return dd.days / 30"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 105,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "# data_LRFMC数据\n",
    "data_LRFMC = pd.DataFrame()\n",
    "# data_LRFMC.columns = ['L', 'R', 'F','M', 'C']\n",
    "data_LRFMC['L'] = (data['LOAD_TIME'].apply(normal_time) - data['FFP_DATE'].apply(normal_time)).apply(interval_time)\n",
    "data_LRFMC['R'] = data['LAST_TO_END']\n",
    "data_LRFMC['F'] = data['FLIGHT_COUNT']\n",
    "data_LRFMC['M'] = data['SEG_KM_SUM']\n",
    "data_LRFMC['C'] = data['avg_discount']\n",
    "\n",
    "# 显示数据的描述，最大值和最小值\n",
    "data_LRFMC_describe = data_LRFMC.describe().T\n",
    "data_LRFMC_describe = data_LRFMC_describe[['max','min']].T\n",
    "\n",
    "data_LRFMC.to_csv('data/LRFMC.csv') #数据写入文件"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "注意到所有的数据值，最大值和最小值间隔较大，需要对数据进行标准化\n",
    "    这里使用标注差标准化,可以使用认识方法进行处理"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 114,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "# 标准化、重命名、写入文件\n",
    "data_normal = (data_LRFMC - data_LRFMC.mean()) / (data_LRFMC.std())\n",
    "data_normal.columns = ['Z'+i for i in data_normal.columns]\n",
    "data_normal.to_csv('data/data_normal')\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "数据处理完毕，下面进行模型的构建，\n",
    "    1、使用聚类算法，将数据生成5类用户\n",
    "    2、针对聚类结果进行特征分析"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 117,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[[ 1.16443082 -0.3775831  -0.08518766 -0.09323092 -0.15906231]\n",
      " [-0.70014625 -0.41584827 -0.15935193 -0.15955595 -0.26734394]\n",
      " [ 0.01594116  0.00784598 -0.24843215 -0.25750534  2.08918975]\n",
      " [ 0.48503896 -0.80134848  2.48281809  2.43536635  0.31393202]\n",
      " [-0.31252471  1.68746582 -0.57426021 -0.53886494 -0.18594193]]\n",
      "[3 3 3 ..., 1 0 4]\n"
     ]
    }
   ],
   "source": [
    "from sklearn.cluster import KMeans\n",
    "k = 5\n",
    "kmodel = KMeans(k) #得到模型\n",
    "kmodel.fit(data_normal) #训练模型\n",
    "\n",
    "# 查看聚类中心和对应的类别\n",
    "print(kmodel.cluster_centers_)\n",
    "print(kmodel.labels_)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 130,
   "metadata": {
    "collapsed": false,
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7fc243cbce80>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "\n",
    "clu = kmodel.cluster_centers_\n",
    "x = [1,2,3,4,5]\n",
    "\n",
    "colors = ['red','green','yellow','blue','black']\n",
    "for i in range(5):\n",
    "    plt.plot(x,clu[i],label='clustre '+str(i),linewidth=6-i,color=colors[i],marker='o') \n",
    "\n",
    "plt.xlabel('L  R  F  M  C')\n",
    "plt.ylabel('values')\n",
    "plt.show()\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "客户价值分析：\n",
    "注意kmeans每次运行的时候得到的类会有差别，簇号也会相应的改变，但是中间点基本不会改变：\n",
    "              L           R           F           M           C\n",
    "客户群1：[ 1.16443082 -0.3775831  -0.08518766 -0.09323092 -0.15906231] red\n",
    "客户群2：[-0.70014625 -0.41584827 -0.15935193 -0.15955595 -0.26734394] green\n",
    "客户群3：[ 0.01594116  0.00784598 -0.24843215 -0.25750534  2.08918975] yellow\n",
    "客户群4：[ 0.48503896 -0.80134848  2.48281809  2.43536635  0.31393202] blue\n",
    "客户群5：[-0.31252471  1.68746582 -0.57426021 -0.53886494 -0.18594193] black\n",
    "\n",
    "我们重点关注的是L，F，M，从图中可以看到：\n",
    "1、客户群4[blue] 的F,M很高，L也不低，可以看做是重要保持的客户；\n",
    "2、客户群3[yellow] 重要发展客户\n",
    "3、客户群1[red] 重要挽留客户，原因：入会时间长，但是F,M较低\n",
    "4、客户群2[green] 一般客户\n",
    "5、客户群5[black] 低价值客户\n",
    "\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "anaconda-cloud": {},
  "kernelspec": {
   "display_name": "Python [conda root]",
   "language": "python",
   "name": "conda-root-py"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.5.2"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
